#include <poll.h>
#include <unistd.h>
#include <stdio.h>

int main()
{
    // 意义：不光光是网络sock，本地的文件描述符也可以被托管给多路转接，那么后面的文件操作，管道等这些技术，是不是也能无缝对接到多路转接呢？
    struct pollfd poll_fd;
    poll_fd.fd = 0;
    poll_fd.events = POLLIN;

    for (;;)
    {
        int ret = poll(&poll_fd, 1, 1000);
        if (ret < 0)
        {
            perror("poll");
            continue;
        }
        if (ret == 0)
        {
            printf("poll timeout\n");
            continue;
        }
        if (poll_fd.revents == POLLIN)
        {
            char buf[1024] = {0};
            read(0, buf, sizeof(buf) - 1);
            printf("stdin:%s", buf);
        }
    }
}